// 中间件函数
// 让ctx.session.user变成响应式，当切换页面的时候，自动切换页面
module.exports = function flash(opts){
    let key='flash';
    // koa中间件必须得是一个函数体
    return async (ctx,next)=>{
        if(ctx.session===undefined) throw new Error('ctx.flash requires sessions');
        let data=ctx.session[key]
        ctx.session[key]=null
        // 数据拦截
        Object.defineProperty(ctx,'flash',{
            enumerable:true,
            get:()=>data,
            set:(val)=>{
                ctx.session[key]=val
            }
        })
        // 执行下一个中间件
        await next()
    }
}